Since the current version of the Internet Protocol (IP) only allows for 32 bits of address space, various measures have been taken to preserve the publicly available address space for the Internet. Given the rapid expansion of the Internet, and the limitation of using 32 bits to define an address, certain rules have been defined to reserve a set of numbers guaranteed never to be used on the Internet. These rules are primarily defined in the Internet Engineering Task Force's Request for Comments (RFC) 1918. Essentially, companies and private network providers can each pick from this set of reserved numbers for their private networks. These reserved numbers are only used for addressing within the private networks, and are not used for addressing in a public fashion around the Internet.
Accordingly, there is a need for translations between private IP addresses and public IP addresses at the portals connecting the private and public networks. Although there are various nuances to such address translation, each type of translation can be categorized as network address translation (NAT). To implement NAT, a router, firewall, or like computing device, generally referred to as a translator, will connect the private network to the public network and provide at least two addresses. On the private network side, the translator will have an address from the particular RFC 1918 address range, and on the Internet side, will have a public IP address assigned by the associated Internet Service Provider (ISP).
When a computer on the private network sends a packet aimed at a device on the public network, such as a server, the source IP address, including port, is provided in the packet along with the destination IP address, which may also include a port. When the packet arrives at the translator, the translator will process the packet and send it out over the public network toward the server. Notably, the translator will change the source IP address to the translator's public IP address. The destination IP address will remain the same as that generated by the computer on the private network. The translator will keep track of the association of the source IP address and the public IP address placed in the packet. Therefore, when the server sends a reply packet in response to the transmitted packet, the reply packet is sent to the public IP address associated with the translator. When the translator receives the reply packet, it will quickly associate the public IP address of the packet with the private IP address of the computer and route the reply packet to the computer over the private network.
In essence, the computer represents a client on a private network, and the translator acts as a public interface for clients on the private network. Although the translator provides a private-to-public mapping of IP addresses for each client, the clients are unaware of the translator and the fact that the representative source IP addresses are replaced with public IP addresses prior to routing over the public network. Further, translators typically have a timer associated with each connection. If no packets are delivered in association with the connection after a certain period of time, the translator closes the connection and often ends the mapping for the client associated with the connection. Thus, once the timer expires and the mapping is lost, incoming packets intended for the client may be lost. Mapping may also be lost when the translator is taken off line due to maintenance, an outage, a power failure, or if the mapping expires for some other reason.
Loss of mapping information in a translator is significant because other clients and servers on the public network that communicate with the client store the public address associated with the client. This public address is the errant public address formally provided by the translator and mapped to the client. Although this does not necessary pose a problem for outgoing packets from the client on the private network, devices on the public network will not be able to communicate with the client on the private network until a new mapping is created. A new mapping is typically created when the client on the private network initiates communications with the other devices on the public network. Since the entities on the public network cannot communicate with the client on the private network when the mapping is lost, a significant amount of information may be lost while waiting for the client on the private network to take an action that causes remapping. Accordingly, there is a need for a mechanism to allow clients on the private network to quickly and efficiently determine when the private-to-public mapping provided by the translator has changed.